`include "ascon_define.v"

module `ROUND_PC
(
     input                        [`PC_CR_W-1:0] cr_i,
     input                            [`S_W-1:0] s_i,

     output                          [`XI_W-1:0] x0_o,
     output                          [`XI_W-1:0] x1_o,
     output                          [`XI_W-1:0] x2_o,
     output                          [`XI_W-1:0] x3_o,
     output                          [`XI_W-1:0] x4_o
);

//接口信号 定义
wire                              [`PC_CR_W-1:0] cr_w;
wire                                  [`S_W-1:0] s_w;

wire                                 [`XI_W-1:0] x0_w;
wire                                 [`XI_W-1:0] x1_w;
wire                                 [`XI_W-1:0] x2_w;
wire                                 [`XI_W-1:0] x3_w;
wire                                 [`XI_W-1:0] x4_w;

//接口信号 与外接口连接
assign cr_w             = cr_i;
assign s_w              = s_i;

assign x0_o             = x0_w;
assign x1_o             = x1_w;
assign x2_o             = cr_w ^ x2_w;
assign x3_o             = x3_w;
assign x4_o             = x4_w;

//例化切割模块
`ROUND_SPLIT
u_round_split
(
     .s_i                              (s_w                                    ),

     .x0_o                             (x0_w                                   ),
     .x1_o                             (x1_w                                   ),
     .x2_o                             (x2_w                                   ),
     .x3_o                             (x3_w                                   ),
     .x4_o                             (x4_w                                   )
);

endmodule